#include <string>
#include <vector>
#include <fstream>
#include <iostream>
#include <map>
#include <algorithm>

using namespace std;

map<int, string> dic{
    {2, "ABC"},
    {3, "DEF"},
    {4, "GHI"},
    {5, "JKL"},
    {6, "MNO"},
    {7, "PRS"},
    {8, "TUV"},
    {9, "WXY"},    
};

/**/
ifstream g_ifs("namenum.in");
ofstream g_ofs("namenum.out");

bool recu(int num, string result){
    if(num == 0){
        reverse(result.begin(), result.end());
        cout << result << endl;
        g_ofs << result << endl;
        return true;
    }
    
    int n = num%10;
    if(n == 0 || n == 1)
    {
        result = "NONE";
        return false;
    }

    string vstr = dic[n];
    for(int i = 0; i < vstr.size(); ++i){
        if( !recu(num/10, result+vstr[i]) )
            return false;
    }

    return true;
}

int main(int argc, char const *argv[])
{
    int num;

    g_ifs >> num;
    
    string str;

    recu(num, str);
    
    return 0;
}
